home *** CD-ROM | disk | FTP | other *** search
/ Softdisk Supreme / Softdisk Supreme.iso / pc / DSK Files / 0-49 / SD020b.dsk / APPLE MASTERMIND.bas < prev    next >
BASIC Source File  |  2003-06-12  |  7KB  |  137 lines

  1. 5  GOSUB 60000
  2. 10  HOME 
  3. 20  DATA  M,A,S,T,E,R,M,I,N,D
  4. 30  GOSUB 7000
  5. 40 X = 11
  6. 45  FOR T = 1 TO 400: NEXT 
  7. 50  FOR T = 1 TO 10
  8. 54  GOSUB 7500
  9. 60  READ I$
  10. 80  HTAB X: VTAB 10: INVERSE : PRINT I$
  11. 100  FOR R = 1 TO 200: NEXT R: NORMAL 
  12. 120 X = X +2: NEXT T
  13. 140  FOR T = 11 TO 24
  14. 150  GOSUB 7500
  15. 160  HTAB 11: VTAB T: PRINT "M A S T E R M I N D"
  16. 180  FOR R = 1 TO 50: NEXT R: NEXT T
  17. 181  HOME : FOR T = 1 TO 1000: NEXT 
  18. 182  HOME : PRINT "DO YOU NEED INSTRUCTIONS? (Y/N)": GET IN$: IF IN$ = "N"  THEN 400
  19. 185  HOME 
  20. 190  GOSUB 8000
  21. 200  HOME : REM  INSTRUCTIONS
  22. 210  PRINT "MASTERMIND IS A GAME OF LOGICAL THINKING"
  23. 240  PRINT : PRINT "THE OBJECT IS TO BREAK A FIVE-PART CODE": PRINT "CHOSEN BY THE CODE-MAKER."
  24. 260  PRINT : PRINT "IN THIS VERSION,": PRINT "THE COMPUTER IS THE CODE-MAKER."
  25. 270  FOR T = 1 TO 8000: NEXT 
  26. 280  PRINT : PRINT "THE CODE IS MADE FROM THE LETTERS A-H."
  27. 300  PRINT : PRINT "THE CODE-MAKER WILL CHOOSE A 5-LETTER": PRINT "SEQUENCE, AND YOU MUST TRY TO RE-CREATE": PRINT "THAT SAME SEQUENCE."
  28. 340  PRINT : PRINT "YOU WILL NOT BE ALLOWED TO SEE THE CODE."
  29. 350  FOR T = 1 TO 12000: NEXT 
  30. 355  HOME : GOSUB 9000
  31. 360  PRINT : PRINT "TYPE IN YOUR FIVE LETTERS WHEN YOU ARE": PRINT "ASKED FOR 'YOUR GUESS?'."
  32. 365  PRINT : PRINT "FOR EACH CORRECT LETTER WHICH IS IN": PRINT "THE CORRECT POSITION,"
  33. 366  PRINT "YOU WILL RECEIVE AN 'X'."
  34. 367  FOR T = 1 TO 8000: NEXT 
  35. 368  PRINT : PRINT "FOR EACH CORRECT LETTER WHICH IS IN": PRINT "THE WRONG POSITION,": PRINT "YOU WILL RECEIVE AN 'O'."
  36. 369  FOR T = 1 TO 8000: NEXT 
  37. 370  PRINT : PRINT "YOU WILL GET 20 TRIES TO BREAK THE CODE.": PRINT "THE OBJECT IS TO BREAK THE CODE": PRINT "IN THE FEWEST POSSIBLE TRIES."
  38. 372  FOR T = 1 TO 12000: NEXT : HOME 
  39. 373  GOSUB 9000
  40. 375  FOR R = 1 TO 25: VTAB 1: PRINT "TO GIVE UP, GUESS '         '": FOR T = 1 TO 200: NEXT T: VTAB 1: PRINT "TO GIVE UP, GUESS 'N O W A Y'": FOR T = 1 TO 200: NEXT T: NEXT R
  41. 380  PRINT : PRINT "GOOD LUCK!": FOR T = 1 TO 5000: NEXT T
  42. 400 N = 0:O = 0
  43. 420  HOME 
  44. 430  GOSUB 7000
  45. 440 A$ = "ABCDEFGH"
  46. 460  FOR T = 1 TO 5
  47. 480 X =  INT(8 * RND(1)) +1
  48. 500  IF T = 1  THEN  GOSUB 620
  49. 520  IF T = 2  THEN  GOSUB 640
  50. 540  IF T = 3  THEN  GOSUB 660
  51. 560  IF T = 4  THEN  GOSUB 680
  52. 580  IF T = 5  THEN  GOSUB 700
  53. 600  NEXT T: GOTO 800
  54. 620 L$ =  MID$ (A$,X,1): RETURN 
  55. 640 M$ =  MID$ (A$,X,1): RETURN 
  56. 660 N$ =  MID$ (A$,X,1): RETURN 
  57. 680 O$ =  MID$ (A$,X,1): RETURN 
  58. 700 P$ =  MID$ (A$,X,1): RETURN 
  59. 800 X$ = L$ +M$ +N$ +O$ +P$
  60. 900 Y = 0
  61. 950  HTAB 1: VTAB 1: PRINT "SCORE=";Y
  62. 960 Y = Y +1
  63. 965  IF Y = 21  THEN 5900
  64. 970  VTAB 23: HTAB 11: PRINT "          "
  65. 975  VTAB 21: PRINT "A,B,C,D,": VTAB 22: PRINT " E,F,G,H ?"
  66. 980  VTAB 23: HTAB 1: PRINT "YOUR GUESS?"
  67. 990  VTAB 23: HTAB 12: PRINT "::::::::::::::::::::::::::::"
  68. 1000  VTAB 23: HTAB 12: GET Q$: PRINT Q$: GOSUB 7500: VTAB 23: HTAB 14: GET R$: PRINT R$: GOSUB 7500: VTAB 23: HTAB 16: GET S$: PRINT S$: GOSUB 7500: VTAB 23: HTAB 18: GET T$: PRINT T$: GOSUB 7500: VTAB 23: HTAB 20: GET U$: PRINT U$: GOSUB 7500
  69. 1003  VTAB 23: HTAB 24: PRINT "CHANGE? (Y/N)";: GET W$: IF W$ = "Y"  THEN 980
  70. 1005  HTAB 12: VTAB Y: PRINT Q$;" ";R$;" ";S$;" ";T$;" ";U$
  71. 1010 F = 1
  72. 2000 Y$ = Q$ +R$ +S$ +T$ +U$
  73. 2010  IF Y$ = "NOWAY"  THEN 6000
  74. 2020  IF Y$ = X$  THEN  GOTO 3000
  75. 2040  REM  RIGHT LETTER,WRONG POSITION
  76. 2060  FOR W = 1 TO 8: REM  SCAN LETTERS A-H
  77. 2080 P = 0:Q = 0
  78. 2100  FOR Z = 1 TO 5: REM  SCAN CODE
  79. 2120  IF  MID$ (A$,W,1) =  MID$ (X$,Z,1)  THEN  GOSUB 2204
  80. 2140  NEXT Z
  81. 2160  FOR Z = 1 TO 5: REM  SCAN GUESS
  82. 2180  IF  MID$ (A$,W,1) =  MID$ (Y$,Z,1)  THEN  GOSUB 2206
  83. 2200  NEXT Z
  84. 2202  GOTO 2210
  85. 2204 P = P +1: RETURN 
  86. 2206 Q = Q +1: RETURN 
  87. 2210  IF P = 0  OR Q = 0  THEN 2280: GOTO 2220
  88. 2220  IF P = Q  THEN 2240
  89. 2230  IF P >Q  THEN 2240
  90. 2235  GOTO 2260
  91. 2240  FOR X = 1 TO Q: GOSUB 5000: NEXT X: GOTO 2280
  92. 2260  FOR X = 1 TO P: GOSUB 5000: NEXT X
  93. 2280  NEXT W: GOTO 2500
  94. 2500  REM  RIGHT LETTER, RIGHT POSITION
  95. 2510 F = 1
  96. 2520  FOR L = 1 TO 5
  97. 2540  IF  MID$ (Y$,L,1) =  MID$ (X$,L,1)  THEN  GOSUB 4000
  98. 2560  NEXT L: GOTO 950
  99. 3000  FLASH : VTAB 23: PRINT "THE ANSWER: ":H = 12: FOR T = 1 TO 5: HTAB H: VTAB 23: PRINT  MID$ (X$,T,1);" ":H = H +2: NEXT T: NORMAL 
  100. 3004  FOR T = 1 TO 10000: NEXT 
  101. 3010  HOME : GOSUB 7000
  102. 3020  HTAB 12: VTAB 10: FLASH : PRINT "CONGRATULATIONS!": NORMAL 
  103. 3040  PRINT : HTAB 9: VTAB 12: PRINT "YOU GOT IT IN ";Y -1;" TRIES."
  104. 3050 N = N +1:O = O +Y -1
  105. 3060  PRINT : HTAB 6: VTAB 14: PRINT "YOU HAVE NOW PLAYED ";N;" ROUNDS,"
  106. 3080  PRINT : HTAB 8: VTAB 16: PRINT "AND YOUR TOTAL SCORE IS ";O;"."
  107. 3100  FOR T = 1 TO 6000: NEXT : HOME : GOSUB 7000: GOTO 6020
  108. 4000 S =  -16336:SOUND =  PEEK(S) - PEEK(S) + PEEK(S) - PEEK(S) + PEEK(S) - PEEK(S) + PEEK(S) - PEEK(S)
  109. 4020  HTAB (F +25): VTAB Y: PRINT "X":F = F +2: RETURN 
  110. 5000 S =  -16336:SOUND =  PEEK(S) - PEEK(S) + PEEK(S) - PEEK(S)
  111. 5020  HTAB (F +25): VTAB Y: PRINT "O":F = F +2: RETURN 
  112. 5900  HTAB 1: VTAB 1: PRINT "SCORE=";Y -1
  113. 6000  FLASH : VTAB 23: PRINT "THE ANSWER: ":H = 12: FOR T = 1 TO 5: HTAB H: VTAB 23: PRINT  MID$ (X$,T,1);" ":H = H +2: NEXT T: NORMAL 
  114. 6010  FOR T = 1 TO 10000: NEXT 
  115. 6015  GOSUB 8000
  116. 6020  HOME : PRINT "DO YOU WANT TO TRY AGAIN? (Y/N)": GET K$
  117. 6030  IF K$ = "Y"  THEN 420
  118. 6040  GOSUB 9000: HOME : PRINT "WELL, MAYBE SOME OTHER TIME.": FOR T = 1 TO 2500: NEXT : HOME 
  119. 6050  DATA  M,A,S,T,E,R,M,I,N,D
  120. 6060 X = 11: FOR T = 1 TO 10: READ E$
  121. 6070  HTAB X: VTAB 10: INVERSE : PRINT E$
  122. 6075 PI =  INT( RND(1) *255) +1:LE =  INT( RND(1) *30) +10: POKE 0,PI: POKE 1,LE: CALL 771
  123. 6080  FOR R = 1 TO 200: NEXT R:X = X +2: NEXT T
  124. 6083  NORMAL 
  125. 6086  VTAB 12: HTAB 19: PRINT "BY": VTAB 14: HTAB 13: PRINT "WARREN HANSON": FOR T = 1 TO 4000: NEXT : HOME 
  126. 6087  VTAB 10: HTAB 16: PRINT "BYE-BYE": FOR T = 1 TO 4000: NEXT : HOME 
  127. 6090  NORMAL : END 
  128. 7000 COL$ = "::::::::::::::::::::::::::::::::::::::::": FOR I = 1 TO 23: VTAB I: HTAB 1: PRINT COL$;: NEXT : PRINT  LEFT$(COL$,39);: POKE 2039, ASC(":") +128
  129. 7020 LE = 4: FOR PI = 254 TO 1  STEP  -2: POKE 0,255 -PI: POKE 1,LE: CALL 771: NEXT 
  130. 7040  FOR PI = 1 TO 50: POKE 0,255 -PI *5: POKE 1,LE: CALL 771: NEXT : RETURN 
  131. 7500 PI =  INT( RND(1) *100) +100:LE = 15: POKE 0,PI: POKE 1,LE: CALL 771
  132. 7520  RETURN 
  133. 8000 LE = 4: FOR PI = 254 TO 1  STEP  -2: POKE 0,255 -PI: POKE 1,LE: CALL 771: NEXT : RETURN 
  134. 9000 LE = 4: FOR PI = 1 TO 50: POKE O,255 -PI *5: POKE 1,LE: CALL 771: NEXT : RETURN 
  135. 60000  POKE 771,173: POKE 772,48: POKE 773,192: POKE 774,136: POKE 775,208: POKE 776,4: POKE 777,198: POKE 778,1: POKE 779,240
  136. 60020  POKE 780,8: POKE 781,202: POKE 782,208: POKE 783,246: POKE 784,166: POKE 785,0: POKE 786,76: POKE 787,3: POKE 788,3
  137. 60040  POKE 789,96: RETURN